A computer network is a collection of interconnected computing devices that can exchange data and share resources. A variety of devices operate to facilitate communication between the computing devices. For example, a computer network may include routers, switches, gateways, firewalls, and a variety of other devices to provide and facilitate network communication. Large enterprises may operate computer networks that include hundreds or even thousands of geographically distributed network devices. These network devices typically include mechanisms, such as management interfaces, for locally or remotely configuring the devices. By interacting with the management interface, various clients, such as human administrators and automated scripts, can configure and provision a device for a particular service on the network.
In some cases a network device may provide multiple management interfaces of different types. For example, a network device may support a management interface that presents a command line interface by which a client can enter text-based commands to be applied by the network device. As another example, the network device may provide a management interface that by which the commands and configuration data may be specified in accordance with a data description language, such as the extensible markup language (XML). Examples of such interfaces include interfaces that support the Network Configuration (NETCONF) protocol, or a derivative thereof, such as the Juniper Device Management Interface, to perform the configuration. Such interfaces may be useful for computer-driven clients, such as automated scripts or network management systems. Further information on XML documents and the NETCONF protocol can be found in Extensible Markup Language (XML) 1.0 (Fifth Edition), W3C Recommendation 26 Nov. 2008, and R. Enns et al., RFC 4741: “NETCONF Configuration Protocol,” Network Working Group, the Internet Engineering Task Force draft, December 2006, available at http://tools.ietf.org/html/rfc4741, respectively, the entire contents of both being incorporated herein by reference.
These mechanisms and management interfaces can be used to configure a device for a particular service. To configure a device for a particular service, the management interface may be used to read, write, and otherwise edit configuration data associated with a particular device. Configuration data of a device is typically specified in accordance with one or more manufacturer-supplied schemas (e.g., XML schemas typically in the form of XML Schema Definition (XSD) documents). Further information on XSD documents can be found in XML Schema Part 1: Structures Second Edition, W3C Recommendation 28 Oct. 2004, the entire contents is incorporated herein by reference. In general, schemas specify appropriate syntactical structure of configuration data specific to a particular device. For example, a schema may describe the elements and attributes of a valid configuration file for a given device in view of the specifications of the device, the functions provided by the device, the network requirements for configuration of the device (e.g., an Internet protocol (IP) address and hostname for the device), and mechanisms for interacting with the device. Using the management interface of a device, a client or network administrator can provide configuration data to the device, in the format specified by the schema, to correctly configure the device for a particular network service.
Without any standardization across industry, schemas may vary from one network device manufacturer to the next. Similarly, manufactures change schemas as new products and new product revisions are developed. Understanding the differences in schemas and managing and configuring devices in a large network that each use a different schema can be challenging for an administrator or client. Individually configuring and provisioning network devices to provide configuration data in a form and format that is specific to the type and version of the particular device can be time consuming, expensive, and undesirable.